<?php
class ModelDelimanKhuvuc extends Model 
{
	public function getList($where = "")
	{
		$sql = "Select * from `dlm_khuvuc` where 1=1 ".$where;
		$query = $this->db->query($sql);
		return $query->rows;
	}
	
	
	public function getItem($khuvucid)
	{
		$sql = "Select * from `dlm_khuvuc` where khuvucid = '".$khuvucid."'";
		$query = $this->db->query($sql);
		return $query->row;
	}
		
	public function insert($data)
	{
		$khuvucid=$this->db->escape(@$data['khuvucid']);
		$tenkhuvuc=$this->db->escape(@$data['tenkhuvuc']);
		$loaikhuvuc=$this->db->escape(@$data['loaikhuvuc']);
		$khuvuccha=$this->db->escape(@$data['khuvuccha']);
		
		/*$this->xuly($data);
		$phuongxaid=$this->db->escape(@$data['phuongxaid']);
		$tenphuongxa=$this->db->escape(@$data['tenphuongxa']);
		$quanhuyenid=$this->db->escape(@$data['quanhuyenid']);
		$tenquanhuyen=$this->db->escape(@$data['tenquanhuyen']);
		$tinhthanhid=$this->db->escape(@$data['tinhthanhid']);
		$tentinhthanh=$this->db->escape(@$data['tentinhthanh']);*/
				
		$field=array(
						'khuvucid',
						'tenkhuvuc',
						'loaikhuvuc',
						'khuvuccha',
						'phuongxaid',
						'tenphuongxa',
						'quanhuyenid',
						'tenquanhuyen',
						'tinhthanhid',
						'tentinhthanh'
					);
		$value=array(
						$khuvucid,
						$tenkhuvuc,
						$loaikhuvuc,
						$khuvuccha,
						$phuongxaid,
						$tenphuongxa,
						$quanhuyenid,
						$tenquanhuyen,
						$tinhthanhid,
						$tentinhthanh
					);
		$getLastId = $this->db->insertData("dlm_khuvuc",$field,$value);
		
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Quản lý đường",
							'hanhdong'=>"Thêm",
							'csdl'=>"dlm_khuvuc[".$getLastId."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten'),
							'truongdulieu'=>"khuvucid",
							'dulieucu'=>"",
							'dulieumoi'=>$getLastId
							);
		$this->load->model('deliman/nhatkyhethong');
		$this->model_deliman_nhatkyhethong->insert($nkht);
		//Ghi nhật ký hệ thống: kết thúc
		
		return $getLastId;
	}
	
	public function update($data)
	{
		$khuvucid=$this->db->escape(@$data['khuvucid']);
		$tenkhuvuc=$this->db->escape(@$data['tenkhuvuc']);
		$loaikhuvuc=$this->db->escape(@$data['loaikhuvuc']);
		$khuvuccha=$this->db->escape(@$data['khuvuccha']);
		
		/*$this->xuly($data);
		$phuongxaid=$this->db->escape(@$data['phuongxaid']);
		$tenphuongxa=$this->db->escape(@$data['tenphuongxa']);
		$quanhuyenid=$this->db->escape(@$data['quanhuyenid']);
		$tenquanhuyen=$this->db->escape(@$data['tenquanhuyen']);
		$tinhthanhid=$this->db->escape(@$data['tinhthanhid']);
		$tentinhthanh=$this->db->escape(@$data['tentinhthanh']);*/
				
		$field=array(
						'khuvucid',
						'tenkhuvuc',
						'loaikhuvuc',
						'khuvuccha',
						'phuongxaid',
						'tenphuongxa',
						'quanhuyenid',
						'tenquanhuyen',
						'tinhthanhid',
						'tentinhthanh'
					);
		$value=array(
						$khuvucid,
						$tenkhuvuc,
						$loaikhuvuc,
						$khuvuccha,
						$phuongxaid,
						$tenphuongxa,
						$quanhuyenid,
						$tenquanhuyen,
						$tinhthanhid,
						$tentinhthanh
					);
					
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht_1 = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Quản lý đường",
							'hanhdong'=>"Sửa",
							'csdl'=>"dlm_khuvuc[".$khuvucid."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten')
							);
		$khuvuc_cu = $this->getItem($khuvucid);
		foreach($data as $key=>$dulieumoi)
		{	
			if(trim($khuvuc_cu[$key]) != trim($dulieumoi))
			{
				$nkht = array();
				$nkht_2 = array(
								'truongdulieu'=>"'".$key."'",
								'dulieucu'=>"'".$khuvuc_cu[$key]."'",
								'dulieumoi'=>"'".$dulieumoi."'",
								);
				$nkht = array_merge($nkht_1, $nkht_2);
				$this->load->model('deliman/nhatkyhethong');
				$this->model_deliman_nhatkyhethong->insert($nkht);	
			}
		}
		//Ghi nhật ký hệ thống: kết thúc
					
		$where="khuvucid = '".$khuvucid."'";
		$this->db->updateData("dlm_khuvuc",$field,$value,$where);
	}	
	
	private function xuly(&$data)
	{
		switch($data['loaikhuvuc'])
		{
			case "duong":
				$phuongxa = $this->getItem($data['khuvuccha']);
				$data['phuongxaid'] = $phuongxa['khuvucid'];
				$data['tenphuongxa'] = $phuongxa['tenkhuvuc'];
				
				$quanhuyen = $this->getItem($phuongxa['khuvuccha']);
				$data['quanhuyenid'] = $quanhuyen['khuvucid'];
				$data['tenquanhuyen'] = $quanhuyen['tenkhuvuc'];
				
				$tinhthanh = $this->getItem($quanhuyen['khuvuccha']);
				$data['tinhthanhid'] = $tinhthanh['khuvucid'];
				$data['tentinhthanh'] = $tinhthanh['tenkhuvuc'];
				break;
			
			case "phuongxa":
				
				$quanhuyen = $this->getItem($data['khuvuccha']);
				$data['quanhuyenid'] = $quanhuyen['khuvucid'];
				$data['tenquanhuyen'] = $quanhuyen['tenkhuvuc'];
				
				$tinhthanh = $this->getItem($quanhuyen['khuvuccha']);
				$data['tinhthanhid'] = $tinhthanh['khuvucid'];
				$data['tentinhthanh'] = $tinhthanh['tenkhuvuc'];
				break;
			case "quanhuyen":
				
				$tinhthanh = $this->getItem($data['khuvuccha']);
				$data['tinhthanhid'] = $tinhthanh['khuvucid'];
				$data['tentinhthanh'] = $tinhthanh['tenkhuvuc'];
				break;
				
		}
	}
	
	public function updateCol($khuvucid,$col,$val)
	{
		$khuvucid=$this->db->escape(@$khuvucid);
		$col=$this->db->escape(@$col);
		$val=$this->db->escape(@$val);
		
		$field=array(
						$col
						
					);
		$value=array(
						$val
					);
		
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$khuvuc = $this->getItem($khuvucid);
		$nkht = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Quản lý đường",
							'hanhdong'=>"Thay đổi khu vực trực thuộc",
							'csdl'=>"dlm_khuvuc[".$khuvucid."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten'),
							'truongdulieu'=>$col,
							'dulieucu'=>$khuvuc[$col],
							'dulieumoi'=>$val
							);
		if(trim($khuvuc[$col]) != trim($val))
		{
			$this->load->model('deliman/nhatkyhethong');
			$this->model_deliman_nhatkyhethong->insert($nkht);
		}
		//Ghi nhật ký hệ thống: kết thúc
		
		$where="khuvucid = '".$khuvucid."'";
		$this->db->updateData("dlm_khuvuc",$field,$value,$where);
	}
			
	public function delete($khuvucid)
	{
		$khuvucid=$this->db->escape(@$khuvucid);
		$data_khuvuc = $this->getChild($khuvucid);
		if(count($data_khuvuc) == 0)
		{
			$where="khuvucid = '".$khuvucid."'";
			$this->db->deleteData('dlm_khuvuc',$where);
		}
		
		//nhthoai: cập nhật
		//Ghi nhật ký hệ thống: bắt đầu
		$nkht = array(
							'ngaythaotac'=>$this->date->getToday(),
							'chucnang'=>"Quản lý đường",
							'hanhdong'=>"Xóa",
							'csdl'=>"dlm_khuvuc[".$khuvucid."]",
							'nhanvienid'=>$this->user->getNhanVien('nhanvienid'),
							'masonhanvien'=>$this->user->getNhanVien('masonhanvien'),
							'tennhanvien'=>$this->user->getNhanVien('hoten'),
							'truongdulieu'=>'khuvucid',
							'dulieucu'=>'',
							'dulieumoi'=>$khuvucid
						);
		$this->load->model('deliman/nhatkyhethong');
		$this->model_deliman_nhatkyhethong->insert($nkht);
		//Ghi nhật ký hệ thống: kết thúc
	}
	
	public function getChild($khuvucid,$order = " Order by `tenkhuvuc`")
	{
		$where = " AND `khuvuccha` = '".$khuvucid."' ".$order;
		return $this->getList($where);
	}
	
	public function getPath($khuvucid,$col)
	{
		$path = array();
		$khuvuc = $this->getItem($khuvucid);
		while(count($khuvuc))
		{
			array_push($path,$khuvuc[$col]);
			$khuvuc = $this->getItem($khuvuc['khuvuccha']);
		}
		return $path;
	}
	
	function getTree($id, &$data,$root="",$notid = -1, $level=-1, $path="", $parentpath="")
	{
		
		$arr=$this->getItem($id);
		
		$rows = $this->getChild($id);
		//if(count($rows))
		{
			$arrtenkhuvuc = $this->getPath($arr['khuvucid'],"tenkhuvuc");
			$arr['tenkhuvuc'] =  implode(" - ", $arrtenkhuvuc);	
		}
		$arr['countchild'] = count($rows);
		
		if($arr['khuvuccha'] != 0 && $id!=$root) 
			$parentpath .= "-".$arr['khuvuccha'];
		
		if($id!=0 && $id!=$notid)
		{
			$level += 1;
			$path .= "-".$id;
			
			$arr['level'] = $level;
			$arr['path'] = $path;
			$arr['parentpath'] = $parentpath;
			
			array_push($data,$arr);
		}
		
		
		if(count($rows) && $id!=$notid)
			foreach($rows as $row)
			{
				$this->getTree($row['khuvucid'], $data,$root,$notid, $level, $path, $parentpath);
			}
	}
}

?>
